home *** CD-ROM | disk | FTP | other *** search
- 10 REM MENU
- 11 :
- 12 REM DISPLAY GRAPHICS MENU AND MAKE CHOICE
- 13 :
- 40 CLR
- 42 GOSUB 21200:REM SET UP VARIABLE NAMES
- 43 POKE SN,0:POKE 49204,14:REM TURN OFF SPRITES
- 44 IFPEEK(34578)<>77 THEN POKE 34578,77:GOTO60:REM SKIP IF FIRST TIME RUN
- 46 :
- 50 REM LINES 52-56 COPY COLOR MEMORY INTO COLOR RAM
- 51 POKE 53265,PEEK(53265)AND239:REM SWITCH SCREEN TO BORDER COLOR
- 52 POKE 252,131:POKE 251,40:POKE 254,216:POKE 253,0
- 53 POKE 53280,13
- 54 POKE 49236,135:POKE49235,16:POKE 53281,0
- 55 :
- 56 SYS 49397:REM MOVES COLOR MEMORY FOR MENU PICTURE
- 57 :
- 58 REM LINES 60-63 DISPLAY THE MAIN MENU PICTURE LOCATED IN BANK 3
- 59 :
- 60 POKE BA,0:POKESA,48:POKE CA,8:POKE SS,204:POKECH,224
- 61 POKE 56578,PEEK(56578)OR3:POKE56576,(PEEK(56576)AND252)OR0
- 62 POKE53272,(PEEK(53272)AND15)OR48:POKE53272,(PEEK(53272)AND240)OR8
- 63 POKE 53265,PEEK(53265)OR32:POKE53270,PEEK(53270)OR16
- 64 :
- 65 I7=255:I8=1:REM FIX BIT MAP(LINES 65-70) ALTERED BY RESTORE
- 66 FORI9=64816 TO 64847
- 67 POKE I9,I7:I8=I8+1:IF I8=5 THENI7=0
- 68 IF I8=9 THEN I7=255:I8=1
- 69 IF I9=64839 THEN I7=240
- 70 NEXT I9
- 71 :
- 75 POKE53281,0
- 80 POKE 53265,PEEK(53265)OR16:REM TURN SCREEN BACK ON
- 100 REM************************************************************************
- 110 REM
- 120 REM MAIN MENU PROGRAM
- 130 REM
- 140 REM THIS PROGRAM DOES THE FOLLOWING;
- 150 REM 1) DISPLAYS MAIN MENU PICTURE
- 160 REM 2) PUTS SPRITE CURSOR ON SCREEN
- 170 REM 3) DIVIDES TABLET INTO FOUR AREAS
- 180 REM 4) SELECTS AND LOADS THE APPROPRIATE MENU SELECTION
- 190 REM
- 200 REM******CONTROL SECTION************
- 210 GOSUB 300:REM SETS UP CONSTANTS
- 220 GOSUB 400:REM MOVE SPRITE AROUND
- 230 GOSUB 500:REM DIVIDE UP TABLET
- 240 (null) TO 600:REM LOAD SELECTION
- 250 (null) TO 220
- 290 END
- 299 :
- 300 REM******SET UP CONSTANTS, VARIABLES,FLAGS*******
- 309 :
- 310 REM SEE "BASICS" PROGRAM FOR DETAILED EXPLANATION OF THE FOLLOWING
- 315 POKE S1,4: POKE S2,4: POKE M1,255: POKEM2,255: REM NORMAL SPRITE RANGE
- 320 POKE LO,1:POKE LE,0:SYS SP
- 340 POKE SK,1:REM SET SPRITE COLOR
- 350 POKE XL,172:POKE XH,0:POKE YL,142:POKE SN,1:REM PUT SPRITE AT CENTER
- 360 SYS TA:IF((PEEK(RX)<9)AND(PEEK(RY)<9))THEN 360:REM CHECK IF PAD PRESSED
- 390 RETURN
- 399 :
- 400 REM******PUT UP SPRITE**************
- 410 POKE SF,0:REM RESET SPRITE SCALING
- 420 SYS SPRITE:REM CALL SPRITE ROUTINE
- 490 RETURN
- 499 :
- 500 REM******DIVIDE UP TABLET***********
- 510 POKE XS,1:POKE H1,0:REM SET X START=1
- 520 POKE YS,1:POKE H2,0:REM SET Y START=1
- 530 POKE XF,238:POKE H3,0:REM SET X FINNISH=228
- 540 POKE YF,200:POKE H4,0:REM SET Y FINNISH=200
- 550 SYS SCALE
- 560 NX=PEEK(XN):NY=PEEK(YN):REM NEW VALUES OF X,Y
- 590 RETURN
- 599 :
- 600 REM********SELECTS AND LOADS CHOICE*******
- 610 IF(PEEK(LP) OR PEEK(RP))=0 THEN GOTO 220:REM RETURN IF NOT PRESSED
- 611 :
- 612 IF((NX>19)AND(NX<105)) THEN NX=1:REM SET DETECTION AREA
- 613 IF((NX>133)AND(NX<221)) THEN NX=2
- 614 IF((NX<>1)AND(NX<>2)) THEN 220
- 615 IF((NY>16)AND(NY<88)) THEN NY=1
- 616 IF((NY>120)AND(NY<189)) THEN NY=2
- 617 IF((NY<>1)AND(NY<>2)) THEN 220
- 618 :
- 620 CV=NX+(NY-1)*2:REM CV=1,2,3,4
- 630 IF CV<1 THEN CV=1:REM CHECK LIMIT
- 640 IF CV>4 THEN CV=4:REM CHECK LIMIT
- 641 POKE SN,0:POKET3,0:POKET3+1,0
- 642 OPEN 2,8,2,"0:SPRITE.UPARROW,S,R"
- 643 CLOSE2:OPEN 15,8,15:INPUT#15,A$,B$,C$,D$
- 644 IFVAL(A$)=0THEN650
- 645 POKE BA,3:POKESA,16:POKECA,4
- 646 SYSTR:PRINT"[147]":PRINT:PRINT:PRINT:PRINT:PRINTCHR$(158):PRINT" ";B$
- 647 FORI=1TO 1000:NEXTI
- 648 GOTO10
- 649 :
- 650 ON CV GOTO 660,700,680,720
- 651 :
- 655 REM POKES 45 THROUGH 50 SET THE END OF BASIC PROGRAM TO BE LOADED
- 656 :
- 660 POKE 45,0:POKE 46,101:REM SET BASIC POINTERS
- 662 POKE 47,0:POKE 48,101:POKE 49,0:POKE 50,101
- 670 CLR:LOAD"BASICS",8:REM LOAD PROGRAM
- 675 :
- 680 POKE 45,0:POKE 46,37
- 682 POKE 47,0:POKE 48,37:POKE 49,0:POKE 50,37
- 690 CLR:LOAD"GRAPHICS",8
- 695 :
- 700 POKE 45,0:POKE 46,46
- 702 POKE 47,0:POKE 48,46:POKE 49,0:POKE 50,46
- 710 CLR:LOAD"CURSORS",8
- 715 :
- 720 POKE 45,0:POKE 46,78
- 722 POKE 47,0:POKE 48,78:POKE 49,0:POKE 50,78
- 730 CLR:LOAD"EXAMPLES",8
- 740 END
- 750 :
- 760 :
- 21100 REM THE FOLLOWING BLOCK IS THE STANDARD DEFINITIONS USED IN ALL MODULES;
- 21120 REM ONLY A FEW OF THESE ARE ACTUALLY REQUIRED IN THIS MENU PROGRAM.
- 21199 :
- 21200 REM ************SET UPS************
- 21202 Z5=45:Z6=46:Z7=47:Z8=48:Z9=49:Z0=50:REM ZERO PAGE BASIC POINTERS
- 21204 CBRDER=53280:CSCREEN=53281
- 21205 REM ASSEMBLY ROUTINE JUMP ADDRESS NAMES
- 21206 TA=49328
- 21208 PERFECT=49337
- 21210 SMOOTH=49340:SCALE=49346:TEXTCR=49349:SPRITE=49352
- 21215 PLTDOT=49355:SETSCL=49358:TURNUN=49361:KLRCOL=49364:TRNUFF=49367
- 21220 LINE=49382:BOX=49385:RDIUS=49388:CIRCLE=49391
- 21222 KOALAPICTURE=49394
- 21224 :
- 21225 REM VARIABLE NAMES
- 21227 RX=49152:RY=49154
- 21230 B1=49156:B2=49157:LPRESS=49161:RPRESS=49162
- 21235 SX=49196:SY=49197:LEVEL=49198:LOCKST=49199
- 21240 XS=49177:YS=49179:XF=49181:YF=49183:XNW=49185:YNW=49189
- 21245 H1=49178:H2=49180:H3=49182:H4=49184
- 21246 S1=49187:S2=S1+1:M1=49175:M2=M1+1:REM SPRITE RANGE
- 21250 BANKA=49191:SSTART=49194:SA=49192:CA=49193
- 21255 SFLAG=49200:SNABLE=53269:SKOLR=53287:XLOSP=53248:XHISP=53264:YLOSP=53249
- 21260 MCM=49205:COLR=49206:XR=49208
- 21265 X1=49209:X2=49210:Y1=49211:Y2=49212:RADIUS=49213:T3=49239
- 21270 RETURN
- 21890 :
- 30000 OPEN15,8,15:PRINT#15,"S0:MENU":SAVE"MENU",8
-